/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package tabelas;

import java.util.List;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

/**
 *
 * @author fumio
 */
public class DataTable {

    private JTable table = null;
    private DefaultTableModel model = null;
    // Lista dos dados usados para popular a tabela
    private List data = null;

    public DataTable(JTable table) {
        this.table = table;

        model = new DefaultTableModel() {

            @Override
            public boolean isCellEditable(int row, int col) {
                return false;
            }
        };
        table.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        table.setModel(model);
    }

    public void adicionarColuna(String nome, int tamanho) {
        model.addColumn(nome);
        int i = model.getColumnCount() - 1;
        //   tabela.getColumnModel().getColumn(i).setPreferredWidth(tamanho);
        TableColumn tab = table.getTableHeader().getColumnModel().getColumn(i);
        tab.setPreferredWidth(tamanho);

    }

    public void adicionarLinha(Object[] linha) {

        model.addRow(linha);

    }

    public void removerTodos() {
        model.getDataVector().removeAllElements();
        table.removeAll();
        table.updateUI();
    }

    public int getQuantidadeLinhas() {
        return table.getRowCount();
    }

    public int getLinhaSelecionada() {
        return table.getSelectedRow();
    }

    public void setLinhaSelecionada(int linha) {
        table.setRowSelectionInterval(linha, linha);
    }

    public Object getObjetoSelecionado() {
        return data.get(table.getSelectedRow());
    }

    public void setDados(List dados) {
        this.data = dados;
    }

    public void pesquisar(String texto, String combo, int colunaString) {
        for (int i = 0; i < model.getRowCount(); i++) {

            if (combo.equals("Nome")) {
                String res = (String) model.getValueAt(i, colunaString);
                res = res.toLowerCase();
                texto = texto.toLowerCase();
                if (!res.startsWith(texto)) {

                } else {
                    System.out.println("texot else" + texto);
                    model.moveRow(i, i, 0);
                    setLinhaSelecionada(i);
                    break;
                }
            } else if (combo.equals("Número")) {
                String res = (String) model.getValueAt(i, colunaString).toString();

                if (!res.startsWith(texto)) {

                } else {
                    model.moveRow(i, i, 0);
                    setLinhaSelecionada(i);
                    break;
                }
            }

        }
    }

}
